package com.itshen.juc;

import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Vector;
import java.util.concurrent.CopyOnWriteArrayList;

/**
 * 线程安全的List
 */
public class SafeList {
    public static void main(String[] args) {
        // 方式一 内部主要使用synchronized关键字实现同步
        List<String> list1 = new Vector<String>();
        // 方式二 适合对数据要求较高的情况，但是因为读写全都加锁，所有效率较低。
        List<String> list2 = Collections.synchronizedList(new ArrayList<>());
        // 方式三  效率较高，适合读多写少的场景，因为在读的时候读的是旧集合，所以它的实时性不高。
        List<String> list3 = new CopyOnWriteArrayList<>();

    }
}
